Virtualization

Learn about virtualization, its benefits, and cloud management platforms.

As the hardware costs decreased, servers became more powerful. Processors were developed with multiple cores, so a single chip could have between two and sixteen CPUs. Memory became cheap enough to pack a full terabyte or more into a single server. All this additional processing and memory capacity made virtualization possible, which changed the relationship between an operating system and a server.

Server
Server
Windows
Server
Windows...
Virtual Machine
Virtual Machine
Linux
Linux
Virtual Machine
Virtual Machine
Linux
Linux
Virtual Machine
Virtual Machine
Windows
Server
Windows...
Virtual Machine
Virtual Machine
Viewer does not support full SVG 1.1
One server running multiple OS simultaneously

Suppose we were to go to our computer and run a simple program, such as a text editor. Now, do it five more times. We now have seven instances of that program running, all at the same time. The same is possible with an OS. Virtualization makes it possible to run multiple instances of an OS side by side on the same server.

Hypervisor#

Virtualization software is known as a hypervisor. A hypervisor is a specialized software that runs within a host OS or directly on the hardware of a server (commonly known as bare metal). When a guest OS is installed on a hypervisor, that guest sends its usual requests for resources (processing, memory, storage, network, and so on) to the hypervisor, which forwards those requests to the hardware. These OS guests, running on a hypervisor, are known as virtual machines. The hypervisor provides virtual (software representations of) CPU, memory, storage, and network resources to each guest operating system.

Benefits#

One of the most significant benefits of virtualization is that, even though they share a host, the guests are completely isolated from each other. If one VM on a host fails, as long as the host is still functional, the other VMs are unaffected. They’re also not able to access each other’s data (unless configured to do so). This isolation supports multitenancy, in which a single hardware platform supports services for multiple clients. Virtualization allows consolidating clients’ services to shared hardware platforms, which leads to significant economies of scale. This is known as vertical scaling, where more services are added to existing hardware.

What does virtualization allow?#

Virtualization allows web hosting operators to offer a range of services for low-volume websites supported by shared hardware. This drives down costs, opening the internet to a larger market of small businesses. Enterprises are able to consolidate web and application services into a much smaller hardware footprint. Cloud platforms like Microsoft Azure, Amazon Web Services, and Google Cloud Platform can provide services on a commodity basis, charging by the hour (or minute, in some cases) for resources such as computing power, memory, and storage.

Virtualization opened new markets and ushered in a new age of server density, concentrating more services into less hardware. However, there are limitations to virtualization. A virtual machine needs reserved hardware resources to maintain performance in production environments.

VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
VM
High load
Medium load
Low load
High load...
Data center
Data center
Viewer does not support full SVG 1.1
Unevenly distributed load

Imagine a data center running 5,000 virtual machines. Some of those VMs might support, for example, an e-commerce website. During peak times, those servers are hard at work providing services to consumers. At off-peak times, those same VMs are dormant, and their hardware resources are going unused.

Cloud management platforms#

Cloud management platforms have the ability to auto-scale, starting up new virtual machines during peak demand and scaling down during off-peak times. This approach has some drawbacks. The boot time for a VM is minutes long at best, which makes it difficult for auto-scaling to respond quickly to demand spikes. It’s also necessary to keep capacity available for new VMs to be auto-started, again reserving unused resources that could be put to work. Storage is yet another challenge. Each VM contains all the data of an entire OS. A typical server OS (Windows Server, Red Hat Linux, and so on) needs anywhere from 20GB to 250GB in storage just for its core services.

Virtualization benefits and limitations#

Virtualization provided major advances in increased density and isolation. However, they have limitations as a solution for scaling to meet constantly changing demand. Real-time scaling requires a solution that provides the isolation of a VM but with faster start times and without the need for reserved hardware resources.

Advent of the Internet

Containers